home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 6
/
FM Towns Free Software Collection 6.iso
/
data
/
dora102f
/
doraonln.plp
< prev
next >
Wrap
Text File
|
1993-07-08
|
8KB
|
179 lines
/* 共通処理の定義 */
/* 通信時間記録処理 */
%RECTIME{%dt @getdt;%time @linetime; %hh time/3600;
%hh @case(@nochar(hh),1,{im({0}|hh)},,{im(hh)});
%mm (time-time/3600*3600)/60;
%mm @case(@nochar(mm),1,{im({0}|mm)},,{im(mm)});
%ss time-time/60*60;
%ss @case(@nochar(ss),1,{im({0}|ss)},,{im(ss)});
TELNO := @head(ROAD,{/});
mkdir2(LOG2|{アクセスdat}); write(LOG2|{アクセスdat\CONNECT.DAT},
{tel no=}|TELNO|
{; logout=}|@getchar(dt,1,10)|{ }|@getchar(dt,17,8)|
{; time=}|hh|{h}|mm|{m}|ss|{s;\n});
};
/*異常切断処理*/
%AbortOff{ [CommentB]
display(CommentB);SNDMSG({okasi_f.snd});
display({\n}|NET|{-NETとの通信を強制切断します\n});
discon;RECTIME;display({\nモデムを直接切断しました\n\n});
SNDMSG({owata_f.snd});footnote({});stop};
/*切断処理 及び 切断終了表示処理*/
%end1{wait({15},{display({おかしいな\n})},{ログアウトしますか} ,{type({Y\n})});
discon;RECTIME;setcdir(CDIR);#DORAMAIN.PLT};
%LogOff {%LAST{ case(@filechk(UP2|{\SAIGO}),
{Yes},{type(@read(UP2|{\SAIGO}));type({\n//\n});delfile(UP2|{\SAIGO})},
{No},{type({//\n\n})})};
footnote({終了処理中});type({O\n});
wait(Wtime2,,{かえっちゃう},{type({Y\n})}
,{ログアウト},{type({Y\n})});
wait(Wtime2,,{------->},{LAST}
,{伝言板を表示しますか},{type({N\n});wait(Wtime2,,{60},{LAST})}
,{Logoff},{},{Timepass},{});
wait(Wtime1,{discon},{きれた},{discon},{切断},{discon}
,{Disconnected},{discon});
RECTIME;SNDMSG({owata_f.snd});footnote({});im({No})};
/* ダウンロード開始と終了の処理 */
/* LOG DOWN START */
%DOWNSTART{var DAY1[24];var DAY2[10];mkdir2(LOG2);
DAY1:=@daylong;DAY2:=@im(@getchar(DAY1,6,2)|@getchar(DAY1,9,2));
footnote({読み込みを開始します});receive(LOG2|NET|DAY2|{.LOG})};
/* LOG DOWN STOP */
%DOWNSTOP{footnote({読み込みを終了しました});setcdir(CDIR)};
/* 「ago」前の年月日を「YYYY/MM/DD」の形式で返す */
%getday{[ago]
var today[25];var YEAR[5];var MONTH[5];var DAY[5];
%plus{[DATA]
case(@nochar(DATA),{1},{im({0}|DATA)},{2},{im(DATA)}
)};
%lastmonth{case(@plus(MONTH),
{01},{im({31})},{02},{im({31})},{03},{im({28})},
{04},{im({31})},{05},{im({30})},{06},{im({31})},
{07},{im({30})},{08},{im({31})},{09},{im({31})},
{10},{im({30})},{11},{im({31})},{12},{im({30})
})};
today:=@daylong;YEAR :=@getchar(today,1,4);
MONTH:=@getchar(today,6,2);DAY :=@getchar(today,9,2);
case(DAY-ago<1,{Yes},{
loop({ DAY:=DAY+@lastmonth;
case(@plus(MONTH),{01},{MONTH:=12; YEAR:=YEAR-1}
, ,{MONTH:=MONTH-1}
);
im(DAY-ago<1);
})});
DAY:=DAY-ago;
im(YEAR|{/}|@plus(MONTH)|{/}|@plus(DAY))};
/* Yes/Noを1/2に変換する */
%YesNo {[YN,default];
case (YN,{Yes},{im({1})},{No},{im({2})},,{im(default)})};
/* RTBBSへの通信メニュー */
%ONLINE {FREE1:={ 2};LGLOOK:={ 2};BDLIST:={ 2};DLLIST:={ 2};
loop ({footnote(NET|{ネットへの通信メニュー});
%dortbbs@YesNo(DORTBBS,{1});
%updown @case(UPDOWN,{first},{im({1})},{last},{im({2})},
{No},{im({3})},,{im({2})});
%maildel@YesNo(MAILDEL,{2}); %mailred@YesNo(MAILRED,{1});
%jisaR @YesNo(JISAR,{1}); %who @YesNo(WHO,{1});
%free1 FREE1; %lglook LGLOOK;
%mactiv @YesNo(MACTIV,{2}); %bdlist @YesNo(BDLIST,{2});
%dllist @YesNo(DLLIST,{2});
%doraend@case(DORAEND,{stopdora},{im({1})},{stopmop},{im({2})},
{poweroff},{im({3})},{continue},{im({4})},
,{im({4})});
%a @plane(
{r自動通信処理(RTBBSでの処理)/する /しない\n}|
{rアップ・ダウンロード実行タイミング /最初 /最後 /しない\n}|
{r既読メールの削除 /する /しない\n}|
{rメール送信簿の確認 /する /しない\n}|
{r全員のプロフィールを見る /する /しない\n}|
{r伝言板を見る /する /しない\n}|
{rアクセスユーザー確認 /する /しない\n}|
{r未読ポインタ /7日前/3日前/1日前/前 回\n}|
{rログ記録を見る / する /しない\n}|
{r月間アクティブ率を見る / する /しない\n}|
{rボード一覧を見る / する /しない\n}|
{rライブラリ一覧を見る / する /しない\n}|
{r自由行動 / する /しない\n}|
{r自動通信終了後/DORA終了/MOPT終了/電源切断/DORA継続\n}|
{s設定変更処理 /RT-BBS設定 / 各種設定\n}|
{sアップ・ダウンロード指定設定処理 / アップロード / ダウンロード \n}|
{s通信を開始する / 開 始 / 終 了 \n},
dortbbs,updown,maildel,mailred,2,jisaR,who,4,LGLOOK
,mactiv,bdlist,dllist,FREE1,doraend
);
%dortbbs@head(@getline(a,1,1),{\n}); %updown @head(@getline(a,2,1),{\n});
%maildel@head(@getline(a,3,1),{\n}); %mailred@head(@getline(a,4,1),{\n});
%allpro @head(@getline(a,5,1),{\n}); %jisaR @head(@getline(a,6,1),{\n});
%who @head(@getline(a,7,1),{\n}); %mpoint @head(@getline(a,8,1),{\n});
LGLOOK:=@head(@getline(a,9,1),{\n}); %mactiv @head(@getline(a,10,1),{\n});
%bdlist @head(@getline(a,11,1),{\n}); %dllist @head(@getline(a,12,1),{\n});
FREE1:= @head(@getline(a,13,1),{\n}); %doraend@head(@getline(a,14,1),{\n});
%setup @head(@getline(a,15,1),{\n}); %updnset@head(@getline(a,16,1),{\n});
%ok @head(@getline(a,17,1),{\n});
case (dortbbs,{ 1},{DORTBBS:={Yes}},{ 2},{DORTBBS:={No}},
,{DORTBBS:={Yes}});
case(updown,{ 1},{UPDOWN:={first}},{ 2},{UPDOWN:={last}},
{ 3},{UPDOWN:={No}},,{UPDOWN:={first}});
case(maildel,{ 1},{MAILDEL:={Yes}},{ 2},{MAILDEL:={No}},
,{MAILDEL:={No}});
case(mailred,{ 1},{MAILRED:={Yes}},{ 2},{MAILRED:={No}},
,{MAILRED:={Yes}});
case(allpro,{ 1},{allPRO:={Yes}},{ 2},{allPRO:={No}},
,{allPRO:={No}});
case (jisaR,{ 1},{JISAR:={Yes}},{ 2},{JISAR:={No}},
,{JISAR:={Yes}});
case (who,{ 1},{WHO:={Yes}},{ 2},{WHO:={No}},
,{WHO:={Yes}});
case (mpoint,{ 1},{mPOINT:=@im(@getchar(@getday(7),3,8))}
,{ 2},{mPOINT:=@im(@getchar(@getday(3),3,8))}
,{ 3},{mPOINT:=@im(@getchar(@getday(1),3,8))}
,{ 4},{mPOINT:={}});
case (doraend,{ 1},{DORAEND:={stopdora}}
,{ 2},{DORAEND:={stopmop}}
,{ 3},{DORAEND:={poweroff}}
,{ 4},{DORAEND:={continue}});
case (mactiv,{ 1},{MACTIV:={Yes}},{ 2},{MACTIV:={No}},
,{MACTIV:={Yes}});
case (bdlist,{ 1},{BDLIST:={Yes}},{ 2},{BDLIST:={No}},
,{BDLIST:={Yes}});
case (dllist,{ 1},{DLLIST:={Yes}},{ 2},{DLLIST:={No}},
,{DLLIST:={Yes}});
case (ok,{ 1},
{case(MAILRED={No}&&MAILDEL={No}&&DORTBBS={No}&&
UPDOWN={No},{Yes},{LOGIN1},{No},{ONLINE1})},
{ 2},{im({No})},,{
case(setup, { 1},{setcdir(CDIR);#DORATGK.PLP},
{ 2},{setcdir(CDIR);#DORASET.PLP});
case(updnset, { 1},{setcdir(CDIR);#DORAUSET.PLP},
{ 2},{setcdir(CDIR);#DORADSET.PLP});
case(ok={ 0}&&setup={ 0}&&updnset={ 0},
{Yes},{im({No})},{No},{im({Yes})});
})})};
/* ログインのみの処理 */
%LOGIN1 {setcdir(CDIR);/*#DORALGIN.PLP;*/RETCD:={Start};
case(RETCD,{Start},
{setcdir(CDIR);#DORACHAT.PLP;DOWNSTOP;LogOff;AUTOEND},,{im({Yes})})
};
/* アップ/ダウンロード処理 */
%UPDOWN1{case(@filechk(UP2|{_mopres.ctl})||@filechk(UP2|{_mopupld.ctl}),
{Yes},{setcdir(CDIR);#DORAUPLD.PLP});
case(@filechk(UP2|{_mopdlib.ctl})||@filechk(UP2|{_mopdnld.ctl}),
{Yes},{setcdir(CDIR);#DORADNLD.PLP})};
/* オンライン処理 */
%ONLINE1{setcdir(CDIR);#DORALGIN.PLP;
case(RETCD,{Start},
{case(UPDOWN,{first},{UPDOWN1});
setcdir(CDIR);#DORALOOP.PLP;DOWNSTOP;
case(UPDOWN,{last},{UPDOWN1});
case(FREE1={ 1},{Yes},{setcdir(CDIR);#DORACHAT.PLP});
LogOff;wait(1);DOWNSTOP;
case(DORAEND,{stopdora},{PLTSTOP},{stopmop},{stopterm},
{poweroff},{command({poff});im({No})},{continue},{im({No})})},
,{im({Yes})});
};
var LOGFILE [12]; /* ログファイル名 */
var TELNO [20]; /* 接続電話番号 */
var RETCD [6]; /* DORALGINのリターンコード */
var upldcntl[64]; /* アップロード制御ファイル名 */
var dnldcntl[64]; /* ダウンロード制御ファイル名 */
ONLINE;